
This document is for modders and for experienced users who want to tweak the position of cumshots for different schlong and body types, or need to detect cumshots in their mods.


-------------------------
Editing AdjustValues.json
-------------------------

As of version 2.3, Cumshot's penis database doesn't need to be manually edited anymore if you have an unknown SOS addon, equipable schlong, or a special body / race with an integrated penis. The MCM has a new sub-page "Genital data", where you can register those to allow ejaculation, and adjust the cumshots for them. The file has a backup (AdjustValuesDefaults.json), which isn't used by the game, but can be copied to restore the database if you think you've completely mucked it up.

The format of AdjustValues.json has slightly changed, so if you have a manually edited version of it, you can't use it anymore. But it's now much easier to add new schlongs to it again.


--------------------------
Detecting cum in your mods
--------------------------

Maybe you have an idea for a mod where people need to cum onto a certain spot. A cauldron that will be slowly filled with man juice? A special plant that needs to be watered with semen in order to grow?

It's possible for other mods to detect where cumshots hit, by setting up an activator and a trigger volume. Drop objects and projectiles can be detected directly. For the other modes you need to turn on the "Tracer objects" option. With it, a series of invisible objects is fired off as well, which can be detected like drop objects.

Drops and tracer objects have the keyword "CS2MaterialCum" that can be used to identify them. Create a trigger volume in the CK and attach a script to it that has the following lines:

Keyword Property CS2MaterialCum Auto

Event OnTriggerEnter(ObjectReference akActionRef)
	Form baseObject = akActionRef.GetBaseObject()
	If baseObject
		If baseObject.HasKeyword(CS2MaterialCum)
			; This spot has been jizzed on!
		EndIf
	EndIf
EndEvent

Projectiles can't be detected that way, they need an activator getting hit by them, with the following script lines:

Event OnMagicEffectApply(ObjectReference akCaster, MagicEffect akEffect)
	If akEffect.HasKeyword(CS2MaterialCum)
		; This object has been jizzed on!
	EndIf
EndEvent

If you don't want to make your mod dependent on Cumshot.esp, you can instead use the function HasKeywordString("CS2MaterialCum"). In that case you don't need to set up a property.

